const setTimeoutPromise = delay => {
  return (value) => {
    return new Promise((resolve, reject) => {
      setTimeout(resolve(value), delay);
    })
  }
}

let tenSecsTimeoutPromise = setTimeoutPromise(10)

let promise = tenSecsTimeoutPromise('hello');

promise
  .then(value => tenSecsTimeoutPromise(value + 'lagou'))
  .then(value => tenSecsTimeoutPromise(value + 'I love U'))
  .then(value => console.log(value));